from models.model_updater import ModelUpdater
import sys

def main():
    print("开始手动更新推荐模型...")
    
    # 创建模型更新器
    updater = ModelUpdater()
    
    # 获取要更新的模型类型
    if len(sys.argv) > 1:
        model_type = sys.argv[1]
    else:
        model_type = "all"
    
    # 根据指定类型更新模型
    if model_type == "cf":
        print("仅更新协同过滤模型...")
        success = updater.update_item_cf_model()
    elif model_type == "content":
        print("仅更新基于内容的推荐模型...")
        success = updater.update_content_model()
    elif model_type == "heat":
        print("仅更新课程热度...")
        success = updater.update_course_heat()
    elif model_type == "itemsets":
        print("仅更新频繁项集...")
        success = updater.update_frequent_itemsets()
    else:
        print("更新所有模型...")
        results = updater.update_all_models()
        # 修改返回值判断逻辑，只要协同过滤和内容推荐成功即可
        if isinstance(results, tuple) and len(results) == 4:
            cf_success, content_success, heat_success, itemset_success = results
            # 只考虑协同过滤和内容推荐的结果
            success = cf_success and content_success
        else:
            success = bool(results)
    
    print(f"模型更新{'成功' if success else '失败'}")
    return success

if __name__ == "__main__":
    main() 